home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / comms / recomm10.arj / WNETBIOS.H < prev    next >
Text File  |  1993-10-12  |  14KB  |  284 lines

  1.  
  2.  
  3. #define MAX_NAME_SIZE             16
  4. #define MAX_TABLE_NAMES           16
  5. #define MAX_DATAGRAM_BUFFER       512
  6. #define NO_WAIT                   0x80
  7. #define MIN_NAME_NUM              2
  8. #define MAX_NAME_NUM              254
  9. #define ILLEGAL_NAME_NUM          0
  10. #define MIN_LSN                   1
  11. #define MAX_LSN                   254
  12. #define ILLEGAL_LSN               0
  13. #define MAX_ADAPTER_NUM           1
  14. #define MAX_SESSION_COUNT         254
  15. #define MAX_NAME_COUNT            254
  16. #define MAX_COMMAND_COUNT         254
  17.  
  18. typedef enum
  19. {
  20.    WAIT_SYS_MODAL,
  21.    WAIT_APP_MODAL,
  22.    WAIT_WND_MODAL
  23. } WMODE;
  24.  
  25. // Nicht unterstⁿtzt unter Windows !!
  26.  
  27. #define NETBIOS_SEND_NO_ACK             0x71
  28. #define NETBIOS_CHAIN_SEND_NO_ACK       0x72
  29. #define NETBIOS_LAN_STATUS_ALERT        0x73
  30. #define NETBIOS_FIND_NAME               0x78
  31. #define NETBIOS_TRACE                   0x79
  32.  
  33. // Unterstⁿtzt unter Windows
  34.  
  35. #define NETBIOS_ADD_NAME                0x30
  36. #define NETBIOS_ADD_GROUP_NAME          0x36
  37. #define NETBIOS_DELETE_NAME             0x31
  38. #define NETBIOS_LISTEN                  0x11
  39. #define NETBIOS_CALL                    0x10
  40. #define NETBIOS_HANGUP                  0x12
  41. #define NETBIOS_RECEIVE                 0x15
  42. #define NETBIOS_SEND                    0x14
  43. #define NETBIOS_CHAIN_SEND              0x17
  44. #define NETBIOS_RESET                   0x32
  45. #define NETBIOS_CANCEL                  0x35
  46. #define NETBIOS_UNLINK                  0x70
  47. #define NETBIOS_SEND_DATAGRAM           0x20
  48. #define NETBIOS_RECEIVE_DATAGRAM        0x21
  49. #define NETBIOS_SEND_BROADCAST          0x22
  50. #define NETBIOS_RECEIVE_BROADCAST       0x23
  51. #define NETBIOS_ADAPTER_STATUS          0x33
  52. #define NETBIOS_SESSION_STATUS          0x34
  53. #define NETBIOS_INVALID_COMMAND         0x7f
  54.  
  55. /* NetBIOS return codes */
  56. #define NB_SUCCESSFUL                   0x00
  57. #define NB_ILLEGAL_BUFFER_LENGTH        0x01
  58. #define NB_INVALID_COMMAND              0x03
  59. #define NB_COMMAND_TIMED_OUT            0x05
  60. #define NB_MESSAGE_INCOMPLETE           0x06
  61. #define NB_NO_ACK_FAILURE               0x07
  62. #define NB_ILLEGAL_LSN                  0x08
  63. #define NB_NO_RESOURCE_AVAILABLE        0x09
  64. #define NB_SESSION_CLOSED               0x0a
  65. #define NB_COMMAND_CANCELLED            0x0b
  66. #define NB_DUPLICATE_LOCAL_NAME         0x0d
  67. #define NB_NAME_TABLE_FULL              0x0e
  68. #define NB_NAME_HAS_ACTIVE_SESSIONS     0x0f
  69. #define NB_LOCAL_SESSION_TABLE_FULL     0x11
  70. #define NB_SESSION_OPEN_REJECTED        0x12
  71. #define NB_ILLEGAL_NAME_NUMBER          0x13
  72. #define NB_CANNOT_FIND_CALLED_NAME      0x14
  73. #define NB_NAME_NOT_FOUND_OR_ILLEGAL    0x15
  74. #define NB_NAME_USED_ON_RMT_ADAPTER     0x16
  75. #define NB_NAME_DELETED                 0x17
  76. #define NB_SESSION_ENDED_ABNORMALLY     0x18
  77. #define NB_NAME_CONFLICT_DETECTED       0x19
  78. #define NB_INCOMPATABLE_RMT_DEVICE      0x1a
  79. #define NB_INTERFACE_BUSY               0x21
  80. #define NB_TOO_MANY_COMMANDS_PENDING    0x22
  81. #define NB_INVALID_ADAPTER_NUMBER       0x23
  82. #define NB_CMD_COMPLETED_DURING_CANCEL  0x24
  83. #define NB_RESERVED_NAME_SPECIFIED      0x25
  84. #define NB_CMD_NOT_VALID_TO_CANCEL      0x26
  85. #define NB_LANA_SYSTEM_ERROR            0x40
  86. #define NB_LANA_REMOTE_HOT_CARRIER      0x41
  87. #define NB_LANA_LOCAL_HOT_CARRIER       0x42
  88. #define NB_LANA_NO_CARRIER_DETECTED     0x43
  89. #define NB_UNUSUAL_NETWORK_CONNECTION   0x44
  90. #define NB_ADAPTER_MALFUNCTION          0x50
  91. #define NB_COMMAND_PENDING              0xff
  92.  
  93. /* internal error codes */
  94. #define NB_NO_FREE_NCB_ERR              0x80
  95. #define NB_WAIT_FOR_RESPONSE_ERR        0x81
  96. #define NB_INVALID_WINDOW               0x82
  97.  
  98. /* NAMETABLEENTRY cNameStatus flags ie: if ((cNameStatus & NS_MASK) == NS_ACTIVE_NAME) */
  99. #define NS_MASK                         0x87
  100. #define NS_ADD_IN_PROGRESS              0
  101. #define NS_ACTIVE_NAME                  4
  102. #define NS_DELETE_PENDING               5
  103. #define NS_IMPROPER_DUP_NAME            6
  104. #define NS_DUP_NAME_DELETE_PENDING      7
  105.  
  106. /* name table entry - referenced in LANASTAT */
  107. typedef struct _NameTableEntry
  108. {
  109.     BYTE  cName[MAX_NAME_SIZE]; /* Local Name             */
  110.     BYTE  cNameNum;             /* Name Number 2 - 254     */
  111.     BYTE  cNameStatus;          /* & with 0x87 for status NS_* */
  112. } NAMETABLEENTRY, FAR * LPNAMETABLEENTRY;
  113.  
  114. /* LAN Adapter status data structure return from AdapterStatus() */
  115. typedef struct _AdapterStatus
  116. {
  117.      BYTE cPermNodeName[6];    /* Permanent Node Name          */
  118.      BYTE cJumperSettings;     /* Jumper Settings              */
  119.      BYTE cSelfTestResults;    /* POST Results                 */
  120.      BYTE cSoftVersionMajor;   /* Software Version Major       */
  121.      BYTE cSoftVersionMinor;   /* Software Version Minor       */
  122.      WORD wReportPeriodMins;   /* Reporting Period in minutes  */
  123.      WORD wCrcErrorCount;      /* Number of CRC Errors         */
  124.      WORD wAlignmentErrors;    /* Number of Alignment Errors   */
  125.      WORD wCollisionCount;     /* Number of Collisions         */
  126.      WORD wXmitAbortCount;     /* Number of Aborted Transmissions */
  127.      LONG lSuccessfulXmits;    /* Number of Successful Transmissions */
  128.      LONG lSuccessfulRcvs;     /* Number of Successful Receives */
  129.      WORD wRetransmitCount;    /* Number of Retransmissions     */
  130.      WORD wResourceDepletionCount;  /* Number of Times Resources Exhausted */
  131.      BYTE wReserved1[8];       /* Reserved 8 Bytes              */
  132.      WORD wFreeCommandBlocks;  /* Free Command Blocks           */
  133.      WORD wCurrentMaxNcbs;     /* Maximum Number of NCBs Configured */
  134.      WORD wFreeNcbs;           /* Number of Free NCBs           */
  135.      BYTE cReserved2[4];       /* Reserved 4 Bytes              */
  136.      WORD wPendingSessionCount; /* Number of Pending Sessions   */
  137.      WORD wCurrentMaxPendingSessions; /* Maximum Number of Sessions Configured */
  138.      WORD wMaxSessionCount;    /* Maximum Number of Possible Sessions */
  139.      WORD wMaxPacketSize;      /* Maximum Session Data Packet Size */
  140.      WORD wNameTableEntries;   /* Number of Names               */
  141.      NAMETABLEENTRY aTableName[MAX_TABLE_NAMES]; /* Name Table Entries */
  142. } LANASTAT, FAR *LPLANASTAT;
  143.  
  144. /* session cState flags */
  145. #define SS_LISTEN             1
  146. #define SS_CALL               2
  147. #define SS_ACTIVE             3
  148. #define SS_HANGUP_PENDING     4
  149. #define SS_HANGUP_COMPLETE    5
  150. #define SS_SESSION_ABORTED    6
  151.  
  152. /* session status table entry - referenced in SESSIONSTAT */
  153. typedef struct _SessionStatEntry
  154. {
  155.     BYTE  cLSN;                /* Local Session Number          */
  156.     BYTE  cState;              /* Session State SS_*            */
  157.     BYTE  cName[MAX_NAME_SIZE];     /* Local Name               */
  158.     BYTE  cCallName[MAX_NAME_SIZE]; /* Remote Name              */
  159.     BYTE  cReceivesPending;    /* Number of Receives Pending    */
  160.     BYTE  cSendsPending;       /* Number of Sends/Chain Sends Pending */
  161. } SESSIONSTATENTRY, FAR * LPSESSIONSTATENTRY;
  162.  
  163. /* LAN Session status data structure return from SessionStatus() */
  164. typedef struct _SessionStatus
  165. {
  166.      BYTE cSessionNum;         /* Session's Name Number        */
  167.      BYTE cSessions;           /* Number of Sessions under Name */
  168.      BYTE cDatagramsPending;   /* Number of Receive Datagrams  */
  169.                                /* or Receive Broadcasts Pending */
  170.      BYTE cReceiveAnysPending; /* Number of Receive Any Pending */
  171.      SESSIONSTATENTRY aSessionStatEntry[36]; /* Session Status List for Name */
  172. } SESSIONSTAT, FAR *LPSESSIONSTAT;
  173.  
  174. typedef struct tagPostData
  175. {
  176.     HWND  hwndPost;
  177.     WORD  wMsgPost;
  178.     WORD  wParam;
  179. } POSTDATA, FAR *LPPOSTDATA;
  180.  
  181. /* NetBIOS Command Block data structure returned from all Post routines */
  182. typedef struct _NCB         /* NetBIOS command block */
  183. {
  184.     BYTE    cCommand;       /* command code */
  185.     BYTE    cRetcode;       /* return code */
  186.     BYTE    cLSN;           /* local session number (1 - 254) */
  187.     BYTE    cNum;           /* number of names in local name table */
  188.     LPSTR   lpBuffer;       /* message buffer address */
  189.     WORD    wLength;        /* message buffer length */
  190.     BYTE    cCallName[MAX_NAME_SIZE]; /* local or remote NetBIOS name */
  191.     BYTE    cName[MAX_NAME_SIZE]; /* local NetBIOS name */
  192.     BYTE    cRTO;           /* receive timeout count */
  193.     BYTE    cSTO;           /* send timeout count */
  194.     FARPROC fnPost;         /* address of post routine */
  195.     BYTE    cAdapterNum;    /* 1=1st adapter; 1=2nd adapter */
  196.     BYTE    cCmdCplt;       /* command status */
  197.     BYTE    cReserved[14];  /* reserved area */
  198.     POSTDATA post;  
  199.     BYTE    used;
  200.     
  201. } NCB, FAR * LPNCB;
  202.  
  203. #define MAX_NCB 32
  204.  
  205. NCB allNCB [MAX_NCB];
  206. NCB privNCB; // private NCB for Cancel ...
  207.  
  208. WORD FAR PASCAL _export SendNetBIOS(LPNCB lpNCB);
  209. WORD FAR PASCAL _export PostNetBIOS(LPNCB lpNCB,HWND  hwndPost,WORD  wMsgPost,WORD  wParam);
  210. BOOL FAR PASCAL _export CancelAllPending(HWND hwndPost);
  211. LPNCB FAR PASCAL _export CreateNCB(BYTE cCommand, BYTE cAdapterNum);
  212. BOOL FAR PASCAL _export DestroyNCB(LPNCB lpNCB);
  213. WORD FAR PASCAL _export SubmitNCB(WMODE Mode, LPNCB lpNCB, HWND hwndPost);
  214. BOOL FAR PASCAL _export IsNetBIOSLoaded(void);
  215. WORD FAR PASCAL _export AddName(WMODE  Mode,LPSTR  szName,BYTE   cAdapterNum, 
  216.     HWND   hwndPost,LPBYTE cNum);
  217. WORD FAR PASCAL _export PostAddName(LPSTR szName, BYTE  cAdapterNum, HWND  hwndPost,     
  218.     WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  219. WORD FAR PASCAL _export AddGroupName(WMODE  Mode, LPSTR szName, BYTE  cAdapterNum,  
  220.     HWND  hwndPost, LPBYTE cNum);
  221. WORD FAR PASCAL _export PostAddGroupName(LPSTR szName, BYTE  cAdapterNum, HWND  hwndPost,     
  222.     WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  223. WORD FAR PASCAL _export DeleteName(WMODE  Mode, LPSTR  szName, BYTE   cAdapterNum, 
  224.     HWND   hwndPost)  ;
  225. WORD FAR PASCAL _export PostDeleteName(LPSTR szName, BYTE  cAdapterNum, HWND  hwndPost,     
  226.     WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  227. WORD FAR PASCAL _export Listen(WMODE  Mode, LPSTR  szName, LPSTR  szCallName,   
  228.     BYTE   cAdapterNum, BYTE   cRTO, BYTE   cSTO, HWND   hwndPost, LPBYTE cLSN,         
  229.     LPSTR  szRemoteName) ;
  230. WORD FAR PASCAL _export PostListen(LPSTR szName, LPSTR szCallName, BYTE  cAdapterNum,  
  231.     BYTE  cRTO, BYTE  cSTO, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  232. WORD FAR PASCAL _export Call(WMODE  Mode, LPSTR  szName, LPSTR  szCallName,   
  233.     BYTE   cAdapterNum, BYTE   cRTO, BYTE   cSTO, HWND   hwndPost, LPBYTE cLSN);
  234. WORD FAR PASCAL _export PostCall(LPSTR szName, LPSTR szCallName, BYTE  cAdapterNum,  
  235.     BYTE  cRTO, BYTE  cSTO, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  236. WORD FAR PASCAL _export HangUp(WMODE  Mode, BYTE  cAdapterNum, BYTE  cLSN, HWND  hwndPost);
  237. WORD FAR PASCAL _export PostHangup(BYTE  cAdapterNum, BYTE  cLSN, HWND  hwndPost, 
  238.     WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB) ;
  239. WORD FAR PASCAL _export Send(WMODE  Mode, BYTE  cAdapterNum, BYTE  cLSN, LPSTR szBuffer,     
  240.     WORD  wBufLen, HWND  hwndPost);
  241. WORD FAR PASCAL _export PostSend(BYTE  cAdapterNum, BYTE  cLSN, LPSTR szBuffer,     
  242.     WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  243. WORD FAR PASCAL _export ChainSend(WMODE  Mode, BYTE  cAdapterNum, BYTE  cLSN, LPSTR szBuffer,     
  244.     WORD  wBufLen, LPSTR szBuffer2, WORD  wBufLen2, HWND  hwndPost);
  245. WORD FAR PASCAL _export PostChainSend(BYTE  cAdapterNum, BYTE  cLSN, LPSTR szBuffer, 
  246.     WORD  wBufLen, LPSTR szBuffer2, WORD  wBufLen2, HWND  hwndPost, WORD  wMsgPost,     
  247.     WORD  wParam, LPNCB FAR *lpRetNCB);
  248. WORD FAR PASCAL _export Receive(WMODE  Mode, BYTE  cAdapterNum, BYTE  cLSN, LPSTR szBuffer,     
  249.     LPWORD wBufLen, HWND  hwndPost);
  250. WORD FAR PASCAL _export PostReceive(BYTE  cAdapterNum, BYTE  cLSN, LPSTR szBuffer,     
  251.     WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  252. WORD FAR PASCAL _export SendBroadcast(WMODE  Mode, BYTE  cAdapterNum, BYTE  cNum,         
  253.     LPSTR szBuffer, WORD  wBufLen, HWND  hwndPost);
  254. WORD FAR PASCAL _export PostSendBroadcast(BYTE  cAdapterNum, BYTE  cNum, LPSTR szBuffer,     
  255.     WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  256. WORD FAR PASCAL _export ReceiveBroadcast(WMODE  Mode, BYTE  cAdapterNum, BYTE  cNum,         
  257.     LPSTR szBuffer, LPWORD wBufLen, HWND   hwndPost);
  258. WORD FAR PASCAL _export PostReceiveBroadcast(BYTE  cAdapterNum, BYTE  cNum, LPSTR szBuffer,     
  259.     WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  260. WORD FAR PASCAL _export SendDatagram(WMODE  Mode, BYTE  cAdapterNum, BYTE  cNum,         
  261.     LPSTR szCallName, LPSTR szBuffer, WORD  wBufLen, HWND  hwndPost);
  262. WORD FAR PASCAL _export PostSendDatagram(BYTE  cAdapterNum, BYTE  cNum, LPSTR szCallName,   
  263.     LPSTR szBuffer, WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  264. WORD FAR PASCAL _export ReceiveDatagram(WMODE  Mode, BYTE  cAdapterNum, BYTE  cNum, LPSTR szBuffer,      
  265.     LPWORD wBufLen, HWND   hwndPost, LPSTR szCallName);
  266. WORD FAR PASCAL _export PostReceiveDatagram(BYTE  cAdapterNum, BYTE  cNum, LPSTR szBuffer,     
  267.     WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost, WORD  wParam, LPNCB FAR *lpRetNCB);
  268. WORD FAR PASCAL _export Cancel(BYTE  cAdapterNum, LPNCB lpPreviousNCB) ;
  269. WORD FAR PASCAL _export Reset(BYTE  cAdapterNum, BYTE  cMaxLSN, BYTE  cMaxCmd);
  270. WORD FAR PASCAL _export SessionStatus(WMODE  Mode, BYTE  cAdapterNum, LPSTR szName,       
  271.     LPSESSIONSTAT lpSessionStat, LPWORD wBufLen, HWND   hwndPost);
  272. WORD FAR PASCAL _export PostSessionStatus(BYTE  cAdapterNum, LPSTR szName, 
  273.     LPSESSIONSTAT lpSessionStat, WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost, WORD  wParam,       
  274.     LPNCB FAR *lpRetNCB);
  275. WORD FAR PASCAL _export AdapterStatus(WMODE  Mode, BYTE  cAdapterNum, LPSTR szCallName,   
  276.     LPLANASTAT lpLanaStat, LPWORD   wBufLen, HWND     hwndPost);
  277. WORD FAR PASCAL _export PostAdapterStatus(BYTE  cAdapterNum, LPSTR szCallName, 
  278.     LPLANASTAT lpLanaStat, WORD  wBufLen, HWND  hwndPost, WORD  wMsgPost,     
  279.     WORD  wParam, LPNCB FAR *lpRetNCB);
  280. WORD FAR PASCAL _export UnlinkRPL(BYTE cAdapterNum) ;
  281. LPSTR FAR PASCAL _export WNB_Error();
  282.  
  283.  
  284. LPSTR FAR PASCAL _export WNB_Error();